<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>hello_react</title>
</head>
<body>
    <script type="text/javascript">
        // 创建一个Person类
        class Person {
            // 构造器方法中属性在实例对象中
            constructor(name,age) {
                // 构造器中的this =>> 类的实例对象
                this.name = name
                this.age = age
                this.talk = function() {
                    console.log('123456')
                }
            }
            // 一般方法
            speak() {
                // speak方法放在哪里？=>>类的原型对象上，但供实例使用
                // speak中的this就是Person实例
                console.log(`我叫${this.name}，我年龄是${this.age}`)
            }
        }
        // 创建一个Person的实例对象
        const p1 = new Person('tom', 18)
        const p2 = new Person('jerry', 19)
        console.log(p1)
        console.log(p2)
        p1.speak()
        p2.speak()

        // 创建一个Student类，继承于Person类
        class Student extends Person {
            constructor(name, age, grade) {
                super(name, age)
                this.grade = grade
            }
            // 重写 speak 方法
            speak() {
                console.log(`我叫${this.name}，我的年龄是${this.age},我读的是${this.grade}年级`)
            }
        }
        const s1 = new Student('小张',15,'高一')
        console.log(s1)
    </script>
</body>
</html>